package main

import (
	"github.com/opentracing/opentracing-go"
	"jaeger-demo/utils"
	"time"
)

// 普通模式
func main() {
	tracer, closer := utils.GetTracer()
	defer closer.Close()

	spanRoot := tracer.StartSpan("span_root")
	time.Sleep(2 * time.Second)
	spanRoot.Finish()

	// 一个 tracer 多个 span
	// 第三步：通过Trace启动Span,输入Span名字
	span1 := tracer.StartSpan("funcA", opentracing.ChildOf(spanRoot.Context()))
	funcA()
	span1.Finish()

	span2 := tracer.StartSpan("funcB", opentracing.ChildOf(spanRoot.Context()))
	funcB()
	span2.Finish()
}

func funcA() {
	time.Sleep(2 * time.Second)
}

func funcB() {
	time.Sleep(1 * time.Second)
}
